/*
 * Copyright 2010-2017 Tocean Group.
 * 版权：商业代码，未经许可，禁止任何形式拷贝、传播及使用
 * 文件名：Service.java
 * 描述：
 * 修改人：Arber.Lee
 * 修改时间：2018年5月9日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */
package online.chenlu.blog.core;

import org.apache.ibatis.exceptions.TooManyResultsException;
import tk.mybatis.mapper.entity.Condition;

import java.util.List;

/**
 * Service 层 基础接口，其他Service 接口 请继承该接口
 */
public interface BaseService<T> {
    void save(T model);// 持久化

    void save(List<T> models);// 批量持久化

    void deleteById(String id);// 通过主鍵刪除

    void deleteByIds(String ids);// 批量刪除 eg：ids -> “1,2,3,4”

    void update(T model);// 更新

    T findById(String id);// 通过ID查找

    T findBy(String fieldName, Object value) throws TooManyResultsException; // 通过Model中某个成员变量名称（非数据表中column的名称）查找,value需符合unique约束

    List<T> findByIds(String ids);// 通过多个ID查找//eg：ids -> “1,2,3,4”

    List<T> findByCondition(Condition condition);// 根据条件查找

    List<T> list(T model);// 根据条件查找

    List<T> findAll();// 获取所有
}
